1. Field of the Invention
This invention relates to information processing systems and more particularly to input, edit and selection of data in an information processing system.
2. Description of Prior Art
It is often quite useful in information processing and other computer related fields to display information in a table format. In the past, the information in a table has been entered into an information processing system in a manner identical to the entry of text. The data in the table was also stored in a memory in the same manner as the text. Edit and recall of the data in the table was also identical to edit and recall of text, i.e., line by line and character by character.
Recently, information processing systems have been developed which store the data in a table in groupings or fields related to their informational content. This has permitted recall of the data in one or more fields individually if desired. It has also made possible the selection of discrete portions of data in a given field or fields which have a predetermined relation to a desired field value.
For example, the age of each person in a given group may form one field. If, for example, it is necessary to find the members of the group that are older than 40, current information processing systems permit the insertion of the field value, in this case 40, and a comparison operator, in this case a greater than function, for finding ages greater than the field value. The system compares all the data in the age field with the field value to find those entries over 40.
To perform this type of comparison function, the information processing system must include a query language. The system must include a keyboard input to permit the operator to command the system to perform the comparison function. In one type of system, an operator keyed language is employed. Such a language requires the actual logic statement to be written out. For example, it might be necessary to type " . . . age is greater than 40 . . . " to instruct the system to perform the desired selection. An operator keyed language sometimes requires considerable operator time to operate. Another disadvantage is the operator must be familiar with the syntax rules of the language in the system as well as the various field names in the file of information to be queried. No prompting is done by the system during the keying of the query, that is, the operator starts each query with a "Blank page". The operator must also wait until the query has been attempted against the file of information before any syntax errors are detected by the system.
Another language employing an option ring may be used in systems having a display such as a video screen for use by the operator. Three function boxes are displayed. The first function box is employed to define the field desired. The function box will display field 1 initially. A key on the keyboard may be operated to display the next option, field 2. The key is pressed until the desired field is displayed. The operator may then activate a second key directing the system to perform the comparison function on the field displayed.
The second function box displays initially a comparison operator. The comparison operator may be an equal sign, a greater than sign, a less than sign or any other operator. Another key on the keyboard is activated by the operator to display in sequence the comparison operators in the system until the desired operator is shown. Another key would then be activated to indicate to the system that the displayed operator is to be used. The third box may be employed to type in the field value. For example, with the example cited above, the field value typed in would be the number 40.
The option ring query language permits the operator to employ a menu driven language. That is, a comparison operator may be entered into the system by merely pressing a few option selection keys rather than typing the entire function as required in the operator keyed language. However, time delays arise in cycling through the nonselected options.
One query language entitled "Query by Example" (QBE) has been developed for use on an IBM system which can display data in a table format. Typically, the data forming a single field would be in a vertical column headed by the field heading. One example of such a field would again be the age of a group of persons. A number of fields may be placed across the display to form rows of data. For example, the data concerning a single person may be provided along a single horizontal row. Each piece of data in the row would represent a particular bit of information about the person and each piece of data would be stored in the appropriate field for age, hair color, etc.
In the QBE language, to test for "age greater than 40" the operator would position a cursor on the display from a keyboard under the age column of the table and type "&gt;40". This is an efficient and straightforward method for specifying this query. However, if the operator wants to select all data that is between 30 and 40 years old the query mechanism becomes more cumbersome. In this situation, a signaling element is typed under the field to be examined. This signaling element may, for example, comprise the symbol X. The operator then activates a key on the keyboard of the system which directs the system to display a condition box on the display. The operator would then type into this condition box the desired logic function. For example, the operator may type "30=&lt; X=&lt;40". Entry of these instructions in the condition box permits the system to perform the desired selection of data from the age field having the desired range of values. In this example, the system would find each entry of an age greater than or equal to 30 and less than or equal to 40.
While the QBE language has been found to be satisfactory, it induces some delay when the operator must translate the cursor from beneath the field heading desired to the condition box to enter the desired function. The QBE language also employs keys which may be used to represent either data or a comparison operator. For instance, the symbol = may be used to compare one value to another or be an actual part of data stored in the system. To distinguish the functions, the QBE language, and many other such languages, place the symbol between quotation marks or other arbitrary boundary symbols so that the system interprets the character between the boundary symbols as actual data. Naturally, special rules become necessary if the boundary symbol itself may be employed as data or a comparison operator. This induces an undesirable complication in the system.
Another shortcoming of many systems is the requirement to find exact syntax equivalence between two pieces of information before finding correspondence. For example, some systems would not find the names Vandermere and Van der mere to be the same from the spaces within the latter name, although their meaning may be identical.